[INFO] fetching crate framed 0.4.3...
[INFO] checking framed-0.4.3 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate framed 0.4.3 into /workspace/builds/worker-7-tc1/source
[INFO] validating manifest of crates.io crate framed 0.4.3 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate framed 0.4.3
[INFO] finished tweaking crates.io crate framed 0.4.3
[INFO] tweaked toml for crates.io crate framed 0.4.3 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded crc16 v0.3.4
[INFO] [stderr]   Downloaded cobs v0.1.4
[INFO] [stderr]   Downloaded ssmarshal v1.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 87a0d9ed81dd564d765d449c080fe6224cbe4b4a7eb2b102a392ba348fca0bc2
[INFO] running `Command { std: "docker" "start" "-a" "87a0d9ed81dd564d765d449c080fe6224cbe4b4a7eb2b102a392ba348fca0bc2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "87a0d9ed81dd564d765d449c080fe6224cbe4b4a7eb2b102a392ba348fca0bc2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "87a0d9ed81dd564d765d449c080fe6224cbe4b4a7eb2b102a392ba348fca0bc2", kill_on_drop: false }`
[INFO] [stdout] 87a0d9ed81dd564d765d449c080fe6224cbe4b4a7eb2b102a392ba348fca0bc2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 51b59b4d42215e0d74bd47f7d36b70d778a9e54daa5d3ee9fca97167dc995242
[INFO] running `Command { std: "docker" "start" "-a" "51b59b4d42215e0d74bd47f7d36b70d778a9e54daa5d3ee9fca97167dc995242", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.197
[INFO] [stderr]    Compiling crc16 v0.3.4
[INFO] [stderr]     Checking encode_unicode v0.3.6
[INFO] [stderr]     Checking cobs v0.1.4
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking ref_slice v1.2.1
[INFO] [stderr]     Checking ssmarshal v1.0.0
[INFO] [stderr]     Checking framed v0.4.3 (/opt/rustwide/workdir)
[INFO] [stdout] error: use of deprecated function `ref_slice::ref_slice_mut`: Similar method was added to std and stabilized in rust 1.28.0. Use `core::slice::from_mut` instead.
[INFO] [stdout]   --> src/bytes.rs:90:16
[INFO] [stdout]    |
[INFO] [stdout] 90 | use ref_slice::ref_slice_mut;
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 | #![deny(warnings)]
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = note: `#[deny(deprecated)]` implied by `#[deny(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of deprecated function `ref_slice::ref_slice_mut`: Similar method was added to std and stabilized in rust 1.28.0. Use `core::slice::from_mut` instead.
[INFO] [stdout]    --> src/bytes.rs:345:30
[INFO] [stdout]     |
[INFO] [stdout] 345 |             let res = r.read(ref_slice_mut(&mut b));
[INFO] [stdout]     |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bytes.rs:339:59
[INFO] [stdout]     |
[INFO] [stdout] 339 |     pub fn decode_from_reader<R: Read>(&mut self, r: &mut Read)
[INFO] [stdout]     |                                                           ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[deny(bare_trait_objects)]` implied by `#[deny(warnings)]`
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 339 |     pub fn decode_from_reader<R: Read>(&mut self, r: &mut dyn Read)
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary trailing semicolon
[INFO] [stdout]    --> src/bytes.rs:547:50
[INFO] [stdout]     |
[INFO] [stdout] 547 |         let mut encoded_buf = [0u8; PAYLOAD_LEN];;
[INFO] [stdout]     |                                                  ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:85:9
[INFO] [stdout]     |
[INFO] [stdout] 85  | #![deny(warnings)]
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = note: `#[deny(redundant_semicolons)]` implied by `#[deny(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of deprecated function `ref_slice::ref_slice_mut`: Similar method was added to std and stabilized in rust 1.28.0. Use `core::slice::from_mut` instead.
[INFO] [stdout]   --> src/bytes.rs:90:16
[INFO] [stdout]    |
[INFO] [stdout] 90 | use ref_slice::ref_slice_mut;
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[deny(deprecated)]` implied by `#[deny(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of deprecated function `ref_slice::ref_slice_mut`: Similar method was added to std and stabilized in rust 1.28.0. Use `core::slice::from_mut` instead.
[INFO] [stdout]    --> src/bytes.rs:345:30
[INFO] [stdout]     |
[INFO] [stdout] 345 |             let res = r.read(ref_slice_mut(&mut b));
[INFO] [stdout]     |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bytes.rs:339:59
[INFO] [stdout]     |
[INFO] [stdout] 339 |     pub fn decode_from_reader<R: Read>(&mut self, r: &mut Read)
[INFO] [stdout]     |                                                           ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[deny(bare_trait_objects)]` implied by `#[deny(warnings)]`
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 339 |     pub fn decode_from_reader<R: Read>(&mut self, r: &mut dyn Read)
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bytes.rs:813:30
[INFO] [stdout]     |
[INFO] [stdout] 813 |     fn pair() -> (Sender<Box<Write>>, Receiver<Box<Read>>) {
[INFO] [stdout]     |                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 813 |     fn pair() -> (Sender<Box<dyn Write>>, Receiver<Box<Read>>) {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bytes.rs:813:52
[INFO] [stdout]     |
[INFO] [stdout] 813 |     fn pair() -> (Sender<Box<Write>>, Receiver<Box<Read>>) {
[INFO] [stdout]     |                                                    ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 813 |     fn pair() -> (Sender<Box<Write>>, Receiver<Box<dyn Read>>) {
[INFO] [stdout]     |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/typed.rs:491:34
[INFO] [stdout]     |
[INFO] [stdout] 491 |         fn pair() -> (Sender<Box<Write>, Test>, Receiver<Box<Read>, Test>) {
[INFO] [stdout]     |                                  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 491 |         fn pair() -> (Sender<Box<dyn Write>, Test>, Receiver<Box<Read>, Test>) {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/typed.rs:491:62
[INFO] [stdout]     |
[INFO] [stdout] 491 |         fn pair() -> (Sender<Box<Write>, Test>, Receiver<Box<Read>, Test>) {
[INFO] [stdout]     |                                                              ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 491 |         fn pair() -> (Sender<Box<Write>, Test>, Receiver<Box<dyn Read>, Test>) {
[INFO] [stdout]     |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `framed` (lib) due to 4 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bytes.rs:816:69
[INFO] [stdout]     |
[INFO] [stdout] 816 |         let tx = c.clone().to_sender(Box::new(chan.writer()) as Box<Write>);
[INFO] [stdout]     |                                                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 816 |         let tx = c.clone().to_sender(Box::new(chan.writer()) as Box<dyn Write>);
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bytes.rs:817:71
[INFO] [stdout]     |
[INFO] [stdout] 817 |         let rx = c.clone().to_receiver(Box::new(chan.reader()) as Box<Read>);
[INFO] [stdout]     |                                                                       ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 817 |         let rx = c.clone().to_receiver(Box::new(chan.reader()) as Box<dyn Read>);
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/typed.rs:495:68
[INFO] [stdout]     |
[INFO] [stdout] 495 |                          .to_sender(Box::new(chan.writer()) as Box<Write>);
[INFO] [stdout]     |                                                                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 495 |                          .to_sender(Box::new(chan.writer()) as Box<dyn Write>);
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/typed.rs:497:70
[INFO] [stdout]     |
[INFO] [stdout] 497 |                          .to_receiver(Box::new(chan.reader()) as Box<Read>);
[INFO] [stdout]     |                                                                      ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 497 |                          .to_receiver(Box::new(chan.reader()) as Box<dyn Read>);
[INFO] [stdout]     |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 12 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `framed` (lib test) due to 13 previous errors
[INFO] running `Command { std: "docker" "inspect" "51b59b4d42215e0d74bd47f7d36b70d778a9e54daa5d3ee9fca97167dc995242", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "51b59b4d42215e0d74bd47f7d36b70d778a9e54daa5d3ee9fca97167dc995242", kill_on_drop: false }`
[INFO] [stdout] 51b59b4d42215e0d74bd47f7d36b70d778a9e54daa5d3ee9fca97167dc995242
[INFO] checking framed-0.4.3 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate framed 0.4.3 into /workspace/builds/worker-7-tc2/source
[INFO] validating manifest of crates.io crate framed 0.4.3 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate framed 0.4.3
[INFO] finished tweaking crates.io crate framed 0.4.3
[INFO] tweaked toml for crates.io crate framed 0.4.3 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 77e521b78bdbcaae5e73d071ff23b4119ce6b07eaf18b9cf5621f6f02880d872
[INFO] running `Command { std: "docker" "start" "-a" "77e521b78bdbcaae5e73d071ff23b4119ce6b07eaf18b9cf5621f6f02880d872", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "77e521b78bdbcaae5e73d071ff23b4119ce6b07eaf18b9cf5621f6f02880d872", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "77e521b78bdbcaae5e73d071ff23b4119ce6b07eaf18b9cf5621f6f02880d872", kill_on_drop: false }`
[INFO] [stdout] 77e521b78bdbcaae5e73d071ff23b4119ce6b07eaf18b9cf5621f6f02880d872
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 121b027b68fefa7cd411747dd8677b92db5f15970eaea6fc379f9705222e0e66
[INFO] running `Command { std: "docker" "start" "-a" "121b027b68fefa7cd411747dd8677b92db5f15970eaea6fc379f9705222e0e66", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.197
[INFO] [stderr]    Compiling crc16 v0.3.4
[INFO] [stderr]     Checking encode_unicode v0.3.6
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking cobs v0.1.4
[INFO] [stderr]     Checking ref_slice v1.2.1
[INFO] [stderr]     Checking ssmarshal v1.0.0
[INFO] [stderr]     Checking framed v0.4.3 (/opt/rustwide/workdir)
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/bytes.rs:286:31
[INFO] [stdout]     |
[INFO] [stdout] 286 |         let cobs_payload = &e[0..e.len() - 1];
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:85:9
[INFO] [stdout]     |
[INFO] [stdout] 85  | #![deny(warnings)]
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = note: `#[deny(range_syntax)]` implied by `#[deny(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/bytes.rs:294:34
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let cobs_decoded = &dest[0..cobs_decoded_len];
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/bytes.rs:298:37
[INFO] [stdout]     |
[INFO] [stdout] 298 |         let payload = &cobs_decoded[0..cobs_decoded_len - self.checksum().len()];
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/bytes.rs:309:43
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let recv_checksum = &cobs_decoded[payload.len() .. payload.len() + checksum.len()];
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]   --> src/checksum.rs:64:20
[INFO] [stdout]    |
[INFO] [stdout] 64 |         &self.data[0..self.len]
[INFO] [stdout]    |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/typed.rs:201:28
[INFO] [stdout]     |
[INFO] [stdout] 201 |         let ser = &ser_buf[0..ser_len];
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/typed.rs:230:31
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let payload = &de_buf[0..de_len];
[INFO] [stdout]     |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/typed.rs:308:28
[INFO] [stdout]     |
[INFO] [stdout] 308 |         let ser = &ser_buf[0..ser_len];
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of deprecated function `ref_slice::ref_slice_mut`: Similar method was added to std and stabilized in rust 1.28.0. Use `core::slice::from_mut` instead.
[INFO] [stdout]   --> src/bytes.rs:90:16
[INFO] [stdout]    |
[INFO] [stdout] 90 | use ref_slice::ref_slice_mut;
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[deny(deprecated)]` implied by `#[deny(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of deprecated function `ref_slice::ref_slice_mut`: Similar method was added to std and stabilized in rust 1.28.0. Use `core::slice::from_mut` instead.
[INFO] [stdout]    --> src/bytes.rs:345:30
[INFO] [stdout]     |
[INFO] [stdout] 345 |             let res = r.read(ref_slice_mut(&mut b));
[INFO] [stdout]     |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bytes.rs:339:59
[INFO] [stdout]     |
[INFO] [stdout] 339 |     pub fn decode_from_reader<R: Read>(&mut self, r: &mut Read)
[INFO] [stdout]     |                                                           ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[deny(bare_trait_objects)]` implied by `#[deny(warnings)]`
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 339 |     pub fn decode_from_reader<R: Read>(&mut self, r: &mut dyn Read)
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/bytes.rs:286:31
[INFO] [stdout]     |
[INFO] [stdout] 286 |         let cobs_payload = &e[0..e.len() - 1];
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:85:9
[INFO] [stdout]     |
[INFO] [stdout] 85  | #![deny(warnings)]
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = note: `#[deny(range_syntax)]` implied by `#[deny(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/bytes.rs:294:34
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let cobs_decoded = &dest[0..cobs_decoded_len];
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/bytes.rs:298:37
[INFO] [stdout]     |
[INFO] [stdout] 298 |         let payload = &cobs_decoded[0..cobs_decoded_len - self.checksum().len()];
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/bytes.rs:309:43
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let recv_checksum = &cobs_decoded[payload.len() .. payload.len() + checksum.len()];
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/bytes.rs:528:14
[INFO] [stdout]     |
[INFO] [stdout] 528 |         &buf[0..len]
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/bytes.rs:540:36
[INFO] [stdout]     |
[INFO] [stdout] 540 |         let decoded = &decoded_buf[0..len];
[INFO] [stdout]     |                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary trailing semicolon
[INFO] [stdout]    --> src/bytes.rs:547:50
[INFO] [stdout]     |
[INFO] [stdout] 547 |         let mut encoded_buf = [0u8; PAYLOAD_LEN];;
[INFO] [stdout]     |                                                  ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[deny(redundant_semicolons)]` implied by `#[deny(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/bytes.rs:556:36
[INFO] [stdout]     |
[INFO] [stdout] 556 |         let encoded = &encoded_buf[0..len];
[INFO] [stdout]     |                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/bytes.rs:595:36
[INFO] [stdout]     |
[INFO] [stdout] 595 |         let decoded = &decoded_buf[0..len];
[INFO] [stdout]     |                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/bytes.rs:650:30
[INFO] [stdout]     |
[INFO] [stdout] 650 |                   &mut encoded[checksum_offset..
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 651 | |                              (checksum_offset + c.config.checksum.len())];
[INFO] [stdout]     | |________________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/bytes.rs:669:32
[INFO] [stdout]     |
[INFO] [stdout] 669 |         let encoded = &encoded[1..encoded.len()];
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]   --> src/channel.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |         buf[0..len].copy_from_slice(&inner.v[pos..pos + len]);
[INFO] [stdout]    |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]   --> src/channel.rs:64:46
[INFO] [stdout]    |
[INFO] [stdout] 64 |         buf[0..len].copy_from_slice(&inner.v[pos..pos + len]);
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/channel.rs:100:37
[INFO] [stdout]     |
[INFO] [stdout] 100 |         assert_eq!(rx.read(&mut buf[0..1]).unwrap(), 1);
[INFO] [stdout]     |                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/channel.rs:102:37
[INFO] [stdout]     |
[INFO] [stdout] 102 |         assert_eq!(rx.read(&mut buf[1..5]).unwrap(), 2);
[INFO] [stdout]     |                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]   --> src/checksum.rs:64:20
[INFO] [stdout]    |
[INFO] [stdout] 64 |         &self.data[0..self.len]
[INFO] [stdout]    |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/typed.rs:201:28
[INFO] [stdout]     |
[INFO] [stdout] 201 |         let ser = &ser_buf[0..ser_len];
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/typed.rs:230:31
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let payload = &de_buf[0..de_len];
[INFO] [stdout]     |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of `Range` range syntax
[INFO] [stdout]    --> src/typed.rs:308:28
[INFO] [stdout]     |
[INFO] [stdout] 308 |         let ser = &ser_buf[0..ser_len];
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of deprecated function `ref_slice::ref_slice_mut`: Similar method was added to std and stabilized in rust 1.28.0. Use `core::slice::from_mut` instead.
[INFO] [stdout]   --> src/bytes.rs:90:16
[INFO] [stdout]    |
[INFO] [stdout] 90 | use ref_slice::ref_slice_mut;
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[deny(deprecated)]` implied by `#[deny(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of deprecated function `ref_slice::ref_slice_mut`: Similar method was added to std and stabilized in rust 1.28.0. Use `core::slice::from_mut` instead.
[INFO] [stdout]    --> src/bytes.rs:345:30
[INFO] [stdout]     |
[INFO] [stdout] 345 |             let res = r.read(ref_slice_mut(&mut b));
[INFO] [stdout]     |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bytes.rs:339:59
[INFO] [stdout]     |
[INFO] [stdout] 339 |     pub fn decode_from_reader<R: Read>(&mut self, r: &mut Read)
[INFO] [stdout]     |                                                           ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[deny(bare_trait_objects)]` implied by `#[deny(warnings)]`
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 339 |     pub fn decode_from_reader<R: Read>(&mut self, r: &mut dyn Read)
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bytes.rs:813:30
[INFO] [stdout]     |
[INFO] [stdout] 813 |     fn pair() -> (Sender<Box<Write>>, Receiver<Box<Read>>) {
[INFO] [stdout]     |                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 813 |     fn pair() -> (Sender<Box<dyn Write>>, Receiver<Box<Read>>) {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bytes.rs:813:52
[INFO] [stdout]     |
[INFO] [stdout] 813 |     fn pair() -> (Sender<Box<Write>>, Receiver<Box<Read>>) {
[INFO] [stdout]     |                                                    ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 813 |     fn pair() -> (Sender<Box<Write>>, Receiver<Box<dyn Read>>) {
[INFO] [stdout]     |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/typed.rs:491:34
[INFO] [stdout]     |
[INFO] [stdout] 491 |         fn pair() -> (Sender<Box<Write>, Test>, Receiver<Box<Read>, Test>) {
[INFO] [stdout]     |                                  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 491 |         fn pair() -> (Sender<Box<dyn Write>, Test>, Receiver<Box<Read>, Test>) {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/typed.rs:491:62
[INFO] [stdout]     |
[INFO] [stdout] 491 |         fn pair() -> (Sender<Box<Write>, Test>, Receiver<Box<Read>, Test>) {
[INFO] [stdout]     |                                                              ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 491 |         fn pair() -> (Sender<Box<Write>, Test>, Receiver<Box<dyn Read>, Test>) {
[INFO] [stdout]     |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 11 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `framed` (lib) due to 12 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bytes.rs:816:69
[INFO] [stdout]     |
[INFO] [stdout] 816 |         let tx = c.clone().to_sender(Box::new(chan.writer()) as Box<Write>);
[INFO] [stdout]     |                                                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 816 |         let tx = c.clone().to_sender(Box::new(chan.writer()) as Box<dyn Write>);
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bytes.rs:817:71
[INFO] [stdout]     |
[INFO] [stdout] 817 |         let rx = c.clone().to_receiver(Box::new(chan.reader()) as Box<Read>);
[INFO] [stdout]     |                                                                       ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 817 |         let rx = c.clone().to_receiver(Box::new(chan.reader()) as Box<dyn Read>);
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/typed.rs:495:68
[INFO] [stdout]     |
[INFO] [stdout] 495 |                          .to_sender(Box::new(chan.writer()) as Box<Write>);
[INFO] [stdout]     |                                                                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 495 |                          .to_sender(Box::new(chan.writer()) as Box<dyn Write>);
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/typed.rs:497:70
[INFO] [stdout]     |
[INFO] [stdout] 497 |                          .to_receiver(Box::new(chan.reader()) as Box<Read>);
[INFO] [stdout]     |                                                                      ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 497 |                          .to_receiver(Box::new(chan.reader()) as Box<dyn Read>);
[INFO] [stdout]     |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 30 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `framed` (lib test) due to 31 previous errors
[INFO] running `Command { std: "docker" "inspect" "121b027b68fefa7cd411747dd8677b92db5f15970eaea6fc379f9705222e0e66", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "121b027b68fefa7cd411747dd8677b92db5f15970eaea6fc379f9705222e0e66", kill_on_drop: false }`
[INFO] [stdout] 121b027b68fefa7cd411747dd8677b92db5f15970eaea6fc379f9705222e0e66
